<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE></TITLE>
	<META NAME="GENERATOR" CONTENT="BrOffice.org 2.4  (Win32)">
	<META NAME="AUTHOR" CONTENT="Karina Kieling">
	<META NAME="CREATED" CONTENT="20081004;20302200">
	<META NAME="CHANGEDBY" CONTENT="Karina Kieling">
	<META NAME="CHANGED" CONTENT="20081101;22295484">
	<STYLE TYPE="text/css">
	<!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
		P.western { so-language: pt-BR }
	-->
	</STYLE>
</HEAD>
<BODY LANG="pt-BR" DIR="LTR">
<P STYLE="margin-bottom: 0cm; line-height: 150%"></P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"></P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"><B>GERA&Ccedil;&Atilde;O
DE C&Oacute;DIGO</B></P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%"><BR><BR>
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%">	A gera&ccedil;&atilde;o
de c&oacute;digo &eacute; a &uacute;ltima etapa da compila&ccedil;&atilde;o,
onde este recebe como entrada a representa&ccedil;&atilde;o
intermedi&aacute;ria do c&oacute;dio-fonte e produz como sa&iacute;da
um programa alvo equivalente (AHO; SETHI; ULLMAN, 1995). 
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="line-height: 150%"><BR><BR>
</P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"><B>C&oacute;digo
intermedi&aacute;rio</B></P>
<P CLASS="western"><BR><BR>
</P>
<P CLASS="western" STYLE="line-height: 150%">	Segundo Price e Toscani
(2001, pg. 15) gera&ccedil;&atilde;o de c&oacute;digo intermedi&aacute;rio
&eacute; &ldquo;a transforma&ccedil;&atilde;o da &aacute;rvore de
deriva&ccedil;&atilde;o em um segmento de c&oacute;digo&rdquo;. Este
tipo se torno muito proveitoso, pois apresenta in&uacute;meras
vantagens em rela&ccedil;&atilde;o a gera&ccedil;&atilde;o de c&oacute;digo
objeto como:</P>
<UL>
	<LI><P CLASS="western" STYLE="margin-bottom: 0cm; background: transparent; line-height: 150%; page-break-before: auto">
	possibilita a otimiza&ccedil;&atilde;o do c&oacute;digo
	intermedi&aacute;rio, de modo a alcan&ccedil;ar o c&oacute;digo
	objeto final mais eficiente;</P>
	<LI><P CLASS="western" STYLE="margin-bottom: 0cm; background: transparent; line-height: 150%">
	possibilita a tradu&ccedil;&otilde;es de c&oacute;digo fonte para
	diversas m&aacute;quinas;</P>
	<LI><P CLASS="western" STYLE="margin-bottom: 0cm; background: transparent; line-height: 150%">
	possibilita facilidades no processo de compila&ccedil;&atilde;o &ndash;
	h&aacute; abstra&ccedil;&atilde;o de problemas relativos ao
	ambiente.</P>
</UL>
<P CLASS="western" STYLE="line-height: 150%">	Mas apesar das vantagem
o grande problema de gerar c&oacute;digo intermedi&aacute;rio &eacute;
que o compilador necessita fase um passo a mais, o que n&atilde;o
acontece no c&oacute;digo objeto, onde a tradu&ccedil;&atilde;o &eacute;
direta do c&oacute;digo fonte, sendo mais r&aacute;pida a sua
compila&ccedil;&atilde;o.</P>
<P CLASS="western" STYLE="line-height: 150%"><BR><BR>
</P>
<P STYLE="margin-bottom: 0cm; line-height: 150%"><B>C&oacute;digo
objeto</B></P>
<P CLASS="western"><BR><BR>
</P>
<P CLASS="western" STYLE="line-height: 150%">	A gera&ccedil;&atilde;o
de c&oacute;digo objeto depende da m&aacute;quina hospedeira, e
possui alguns requisitos, onde o c&oacute;digo gerado deve ser
correto e de alta qualidade, o c&oacute;digo deve fazer uso efetivo
dos recursos da m&aacute;quina e o c&oacute;digo gerado deve executar
eficientemente.</P>
<P CLASS="western" STYLE="line-height: 150%">	O projetista do
compilado deve considerar os 4 aspectos que segue (PRICE; TOSCANI,
2001):</P>
<UL>
	<LI><P CLASS="western" STYLE="line-height: 150%">forma do c&oacute;digo
	objeto a ser gerado: linguagem absoluta, reloc&aacute;vel ou
	assembly;</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">sele&ccedil;&atilde;o
	das instru&ccedil;&otilde;es de m&aacute;quina: escolha da seq&uuml;&ecirc;ncia
	apropriada pode resultar num c&oacute;digo mais curto e mais r&aacute;pido;</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">aloca&ccedil;&atilde;o
	de registradores;</P>
	<LI><P CLASS="western" STYLE="line-height: 150%">escolha da ordem de
	avalia&ccedil;&atilde;o: a determina&ccedil;&atilde;o das melhor
	ordem para execu&ccedil;&atilde;o das instru&ccedil;&otilde;es e um
	problema insol&uacute;vel. Algumas computa&ccedil;&otilde;es
	requerem menos registradores para resultados intermedi&aacute;rio.</P>
</UL>
<P CLASS="western" STYLE="line-height: 150%"><BR><BR>
</P>
<P CLASS="western" STYLE="margin-bottom: 0cm; line-height: 150%"><IMG SRC="gera%C3%A7ao%20de%20codigo_html_m637a0871.gif" ALIGN=MIDDLE>
<A HREF="Indice.html">Voltar &Iacute;ndice</A></P>
<P CLASS="western" STYLE="margin-bottom: 0cm; line-height: 150%"><BR>
</P>
<P CLASS="western" STYLE="margin-bottom: 0cm; line-height: 150%"><BR>
</P>
<P CLASS="western"><BR><BR>
</P>
</BODY>
</HTML>